package cn.tedu._05mvcboot01.controller;

import cn.tedu._05mvcboot01.pojo.dto.UpdateCartDTO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

@Controller
public class CartsController {
    /**
     * 添加到购物车功能
     * 服务端接收数据:
     * 方法1: 通过HttpServletRequest对象接收;
     * 1.Get请求: http://localhost:8080/v1/carts/addProduct?title=xxx&price=xxx
     * 2.POST请求
     * <input type="text" name="title">
     * <input type="text" name="price">
     */
    @RequestMapping("/v1/carts/addProduct")
    @ResponseBody
    public String addProduct(HttpServletRequest request){
        String title = request.getParameter("title");
        String price = request.getParameter("price");

        return "添加到购物车成功: "+title+" - "+price;
    }

    /**
     * 删除购物车商品功能
     * /v1/carts/delProduct
     * 方法:get
     * 查询参数: 用户名username,商品编号id
     * 返回响应: 已删除编号为xxx的商品
     * http://localhost:8080/v1/carts/delProduct?username=xxx&id=xxx
     */
    @RequestMapping("/v1/carts/delProduct")
    @ResponseBody
    public String delProduct(String username,Integer id){
        return username+", 您已删除编号为"+id+"的商品";
    }

    /**
     * 接收数据的方式3: 声明pojo类方法
     * 修改购物车功能
     * 请求地址:/v1/carts/update
     * 请求方法:GET
     * 请求参数: 商品名称title,价格price,数量number
     * 返回响应: 字符串
     */
    @RequestMapping("/v1/carts/update")
    @ResponseBody
    public String updateProduct(UpdateCartDTO updateCartDTO){
        String title = updateCartDTO.getTitle();
        Double price = updateCartDTO.getPrice();
        Integer number = updateCartDTO.getNumber();
        return "修改购物车成功!"+title+","+price+","+number;
    }
}
